/**
 * @brief 日志模块
 * @version 1.0
 * @author 宋炜
 */

#include <string>
#include <memory>
#include "designM/singleton.hpp"
#include "tinySeqFile.hpp"

#pragma once

class log : public wheels::dm::singleton< log >
{
public:

private:
    std::shared_ptr< wheels::tinySeqFile >   pt_egnx__;
private:

public:
    log( const std::string& path , int page , int count );
    ~log();
    /**
     * @brief 记录日志
     * @details 该函数负责将日志数据写入到日志文件中
     * @param data 日志数据
     * @return true 写入成功
     * @return false 写入失败
     */
    bool push( const std::string& data );
    /**
     * @brief 输出到指定的txt格式文件中
     * @details 该函数负责将日志文件中的数据输出到指定的txt文件中
     * @param dst 输出文件路径
     * @return true 输出成功
     * @return false 输出失败
     */
    bool toText( const std::string& dst );
    /**
     * @brief 清空日志
     */
    void clear(){
        pt_egnx__->clear();
        pt_egnx__->sync();
    }
};